IPTV is a term used when delivering broadcasted TV services over an Internet Protocol (IP) network, typically a broadband access network. The predominant IPTV service is Broadcast TV, in which the normal non-IPTV channels, as well as additional channels with low penetration are transmitted over the broadband network from the super head-end down to the end-user's set top box (STB). In order to minimize the bandwidth required for these transmissions it is suggested to use multicast techniques through the network. When the user switches channel, the STB sends out an Internet Group Management Protocol (IGMP) message to leave the current channel and join a new one.
The multicast group that the STB joins contains streams with Moving Picture Experts Group (MPEG) (normally 2 or 4 part 10) frames. There are different frames in MPEG, so-called intra (I) frames which contain a full picture and inter frames, i.e. P-frames containing incremental extrapolation information and B-frames containing interpolation information. Since the inter frames depend on adjacent frames it is necessary that the STB receives a full intra frame before a new channel can be shown. This means that the average time for switching between channels will depend on the distance in time between intra frames in the multimedia streams. Typically for MPEG-2 the distance is around 0.5 seconds and for MPEG-4 part 10 it can be up to several seconds.
In order to alleviate the problem with channel switching delay, various solutions have been presented.
Omicron [1] describes how to do fast channel switching between MPEG-streams. In their solution, a memory unit is provided in the connection link between the super head-end and the user's STB. This memory unit comprises a set of shift registers that continuously store short sequences of multimedia data of the different available multimedia channels. The lengths of the shift registers are set so that each register always contains at least one intra frame. When a user switches multimedia channel, his/her STB sends a unicast request to the memory unit for the desired new channel and the memory unit fetches the intra frame of that channel stored in one of its shift registers. The fetched intra frame is unicast back to the STB.
One major problem with this type of solution is that in the stream going out of it will be unicast. This means that the switch will either have to be close to, or inside the access node. Otherwise there will be a substantial bandwidth increase in the access network, in particular if several STB users want to switch channels within a same short time interval.
Several documents [2-5] have suggested a solution in which a multimedia stream is input to both a normal decoder for generating a normal multimedia stream and a lower quality encoder for generating a channel change stream comprising lower quality intra frames. A STB is forced to, in connection with a channel switch, to connect to both the normal multimedia stream and the channel change stream. Both streams are processed in parallel in order to identify a first intra frame, either being a normal intra frame of the normal multimedia stream or a lower quality intra frame of the channel change stream. In the former case, the STB simply leaves the channel change stream and continuous to receive the normal stream. However, in the latter case, the STB leaves the channel change stream first once it has received the complete lower quality intra frame and then continuous to receive data of the normal stream. This will cause decoding drift that, in connection with the usage of lower quality intra frames, result in reduced user-perceived quality of the displayed multimedia. In addition, the STB has to perform extensive data management due to the parallel reception and processing of the normal and channel change stream.